/**
 * 令f(x)为x的各个数位之和，解方程：
 * ((u* f(x)的a次方 + v) & p) 异或 ((v * f(x)的b次方 + u) | q) = x
 * 在n以内的解，其中n在1E18
 * 注意到全范围内f(x)的取值的可能性也只有18*9+1种可能，
 * 某年CCPC网络赛有道类似的题目
 * 因此枚举f(x)的所有可能的值即可
 */
#include <bits/stdc++.h>
using namespace std;

#include <bits/extc++.h>
using namespace __gnu_pbds;

using llt = long long;

llt N;
llt A, B, U, V, P, Q;

bool isok(int x){
    llt a = 1;
    for(int i=0;i<A;++i) a *= x;
    llt b = 1;
    for(int i=0;i<B;++i) b *= x;
    auto tmp = ((U * a + V) & P) ^ ((V * b + U) | Q);
    if(tmp > N) return false;
    int y = 0;
    while(tmp){
        y += tmp % 10;
        tmp /= 10;
    }
    return x == y;
}

llt proc(){
    int ans = 0;
    for(int i=0;i<=18*9;++i){
        if(isok(i)){
            // cout << i << " ";
            ++ans;
        } 
    }
    return ans;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);
    cin >> N >> A >> B >> U >> V >> P >> Q;
    cout << proc() << endl;
    return 0;
}